'''
1. 守护线程的特点
生命周期：守护线程会在主线程结束时自动终止，即使它还没有完成任务。
用途：通常用于执行后台任务，如监控、日志记录或垃圾回收等，这些任务不需要在主线程结束后继续运行。
优先级：守护线程的优先级较低，不会阻止程序的退出。
'''
import threading
import time


def worker_with_args(i):
    time.sleep(1)
    print(f"线程 {threading.current_thread().name} 打印: {i}")

def worker_without_args():
    time.sleep(1)
    print(f"线程 {threading.current_thread().name} 打印: {i}")

if __name__ == '__main__':
    threads = []
    for i in range(10):
        # 创建线程并指定名字
        t = threading.Thread(target=worker_with_args, args=(i,), name=f"线程{i}",daemon=True)
        t.start()
        threads.append(t)

        t2 = threading.Thread(target=worker_without_args, name=f"线程{i}",daemon=True)
        t2.start()

        threads.append(t2)



    print("主线程结束，守护线程会自动终止，即使它们还没有完成任务。")

    # 等待所有子线程完成
    # for t in threads:
    #     t.join()

